﻿using System;
using Harvest.API.Attributes;

namespace Harvest.API.Model
{

    /// <summary>
    /// 
    /// </summary>
    [SerializationInfo("client")]
    public class Client
    {

        /// <summary>
        /// 
        /// </summary>
        /// <example>
        /// <![CDATA[<id type="integer">135194</id>]]>
        /// </example>
        [SerializationInfo("id", "integer", IsNullable = true)]
        public int? Id { get; set; }

        /// <summary>
        /// 
        /// </summary>
        /// <example>
        /// <![CDATA[<name>Thommy Mewes</name>]]>
        /// </example>
        [SerializationInfo("name")]
        public string Name { get; set; }

        /// <summary>
        /// 
        /// </summary>
        /// <example>
        /// <![CDATA[<active type="boolean">true</active>]]>
        /// </example>
        [SerializationInfo("active", "boolean")]
        public bool? Active { get; set; }

        /// <summary>
        /// 
        /// </summary>
        /// <example>
        /// <![CDATA[<details></details>]]>
        /// </example>
        [SerializationInfo("details", IsNullable = true)]
        public string Details { get; set; }

        /// <summary>
        /// 
        /// </summary>
        /// <example>
        /// <![CDATA[<cache-version type="integer">663</cache-version>]]>
        /// </example>
        [SerializationInfo("cache-version", "integer", IsNullable = true)]
        public int? CacheVersion { get; set; }

        /// <summary>
        /// 
        /// </summary>
        /// <example>
        /// <![CDATA[<currency>Euro - EUR</currency>]]>
        /// </example>
        [SerializationInfo("currency", IsNullable = true)]
        public string Currency { get; set; }

        /// <summary>
        /// 
        /// </summary>
        /// <example>
        /// <![CDATA[<highrise-id type="integer" nil="true"></highrise-id>>]]>
        /// </example>
        [SerializationInfo("highrise-id", "integer", IsNullable = true)]
        public int? HighriseId { get; set; }

        /// <summary>
        /// 
        /// </summary>
        /// <example>
        /// <![CDATA[<updated-at type="datetime">2009-12-10T11:03:15Z</updated-at>]]>
        /// </example>
        [SerializationInfo("updated-at", "datetime", IsNullable = true)]
        public DateTime? UpdatedAt { get; set; }

        /// <summary>
        /// 
        /// </summary>
        /// <example>
        /// <![CDATA[<default-invoice-timeframe nil="true"></default-invoice-timeframe>]]>
        /// </example>
        [SerializationInfo("default-invoice-timeframe", IsNullable = true)]
        public string DefaultInvoiceTimeframe { get; set; }

    }

}
